﻿//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////  LIBRERIA: SIMA.CORE                                                                                             ////
////  DESARROLLADO POR JUAN CARLOS VEGA NEIRA                                                                         ////
////  UNIVERSIDAD RICARDO PALMA                                                                                       ////
////  CURSO DE TALLER DE GERENTCIA DE PROYECTOS                                                                       ////
////  SEMESTRE 2010 - II                                                                                              ////
////  SEPTIEMBRE, 2010                                                                                                ////
////  TODOS LOS DERECHOS RESERVADOS                                                                                   ////
////  VERSIÓN v1.0                                                                                                    ////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

using System;
using System.Reflection;
using System.Text;

namespace SIMA.Core.Utils
{
    public static class FormatUtils<T>
    {
        public static string FieldFormater(PropertyInfo property, T classType)
        {
            StringBuilder strBuilder = new StringBuilder();
            //object instance = Activator.CreateInstance(classType);
            switch (property.PropertyType.Name)
            {
                case "Int32":
                    strBuilder.Append(property.GetValue(classType, null));
                    break;
                case "String":
                    if ((property.GetValue(classType, null) as string) == null)
                    {
                        strBuilder.Append("NULL");
                    }
                    else
                    {
                        if ((property.GetValue(classType, null) as string).Length == 0)
                        {
                            strBuilder.Append("NULL");
                        }
                        else
                        {
                            strBuilder.Append("'");
                            strBuilder.Append(property.GetValue(classType, null));
                            strBuilder.Append("'");
                        }
                    }
                    break;
                case "Boolean":
                    if ((bool)property.GetValue(classType, null) == true)
                    {
                        strBuilder.Append("1");
                    }
                    else
                    {
                        strBuilder.Append("0");
                    }                    
                    break;
                case "Double":
                    strBuilder.Append(property.GetValue(classType, null));
                    break;
                case "Decimal":
                    strBuilder.Append(property.GetValue(classType, null));
                    break;
                case "DateTime":
                    DateTime temp = (DateTime)property.GetValue(classType, null);
                    strBuilder.Append(temp.ToShortDateString());
                    break;
            }
            return strBuilder.ToString();
        }

        //public static string QueryClauseFormat(params )
        //{
        //    StringBuilder strBuilder = new StringBuilder();


        //}
    }
}
